/**
 * 云函数请求工具
 * 自动添加 token 到请求中
 */
import { getToken } from './cookie.js';

/**
 * 封装的云函数调用方法，自动添加 token
 * @param {String} name - 云函数名称
 * @param {Object} data - 请求参数
 * @returns {Promise} - 云函数返回结果
 */
export const callCloudFunction = async (name, data = {}) => {
  try {
    // 获取 token
    const token = getToken();
    
    // 添加 token 到请求参数
    const requestData = {
      ...data,
      token: token || ''
    };
    
    // 调用云函数
    const result = await uniCloud.callFunction({
      name,
      data: requestData
    });
    
    return result;
  } catch (error) {
    console.error(`调用云函数 ${name} 失败:`, error);
    throw error;
  }
};

/**
 * 检查云函数返回的结果是否包含 token 过期错误
 * 如果 token 过期，可以在这里处理重新登录逻辑
 * @param {Object} result - 云函数返回结果
 * @returns {Boolean} - 是否需要重新登录
 */
export const checkTokenExpired = (result) => {
  // 根据实际业务逻辑判断 token 是否过期
  // 例如: result.code === 401 || result.message === 'token expired'
  if (result && result.code === 401) {
    // 可以在这里处理重新登录逻辑
    console.log('Token 已过期，需要重新登录');
    return true;
  }
  return false;
};
